<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="theme-color" content="#33474d">
	<title>Linux下的几个网络连接状态具体含义 | 失落的乐章</title>
	<link rel="stylesheet" href="/css/style.css" />
	
      <link rel="alternate" href="/atom.xml" title="失落的乐章" type="application/atom+xml">
    
</head>

<body>

	<header class="header">
		<nav class="header__nav">
			
				<a href="/archives" class="header__link">Archive</a>
			
				<a href="/tags" class="header__link">Tags</a>
			
				<a href="/atom.xml" class="header__link">RSS</a>
			
		</nav>
		<h1 class="header__title"><a href="/">失落的乐章</a></h1>
		<h2 class="header__subtitle">技术面前，永远都是学生。</h2>
	</header>

	<main>
		<article>
	
		<h1>Linux下的几个网络连接状态具体含义</h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux/">Linux</a>
			</span>
		
	</div>

	

	
		<ol>
<li><p>LISTEN：首先服务端需要打开一个socket进行监听，状态为LISTEN。 /<em> The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 </em>/ </p>
</li>
<li><p>SYN_SENT：客户端通过应用程序调用connect进行active open，于是客户端TCP发送一个SYN以请求建立一个连接，之后状态置为SYN_SENT。 /<em>The socket is actively attempting to establish a connection. 在发送连接请求后等待匹配的连接请求 </em>/ </p>
</li>
<li><p>SYN_RECV：服务端应发出ACK确认客户端的SYN，同时自己向客户端发送一个SYN，之后状态置为SYN_RECV。 /<em> A connection request has been received from the network. 在收到和发送一个连接请求后等待对连接请求的确认 </em>/ </p>
</li>
<li><p>ESTABLISHED：代表一个打开的连接，双方可以进行或已经在数据交互了。 /<em> The socket has an established connection. 代表一个打开的连接，数据可以传送给用户 </em>/ </p>
</li>
<li><p>FIN_WAIT1：主动关闭(active close)端应用程序调用close，于是其TCP发出FIN请求主动关闭连接，之后进入FIN_WAIT1状态。 /<em> The socket is closed, and the connection is shutting down. 等待远程TCP的连接中断请求，或先前的连接中断请求的确认 </em>/ </p>
</li>
<li><p>CLOSE_WAIT：被动关闭(passive close)端TCP接到FIN后，就发出ACK以回应FIN请求（它的接收也作为文件结束符传递给上层应用程序），并进入CLOSE_WAIT。 /<em> The remote end has shut down, waiting for the socket to close. 等待从本地用户发来的连接中断请求 </em>/ </p>
</li>
<li><p>FIN_WAIT2：主动关闭端接到ACK后，就进入了FIN-WAIT-2。 /<em> Connection is closed, and the socket is waiting for a shutdown from the remote end. 从远程TCP等待连接中断请求 </em>/ </p>
</li>
<li><p>LAST_ACK：被动关闭端一段时间后，接收到文件结束符的应用程序将调用CLOSE关闭连接。这导致它的TCP也发送一个FIN，等待对方的ACK，就进入了LAST-ACK。 /<em> The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原来发向远程TCP的连接中断请求的确认 </em>/ </p>
</li>
<li><p>TIME_WAIT：在主动关闭端接收到FIN后，TCP就发送ACK包，并进入TIME-WAIT状态。 /<em> The socket is waiting after close to handle packets still in the network.等待足够的时间以确保远程TCP接收到连接中断请求的确认 </em>/ </p>
</li>
<li><p>CLOSING：比较少见。 /<em> Both sockets are shut down but we still don’t have all our data sent. 等待远程TCP对连接中断的确认 </em>/ </p>
</li>
<li><p>CLOSED：被动关闭端在接受到ACK包后，就进入了CLOSED的状态，连接结束。 /<em> The socket is not being used. 没有任何连接状态 </em>/</p>
</li>
</ol>

	

	
		<span class="different-posts"><a href="/2017/10/12/1. Linux 基础/56. Linux下的几个网络连接状态具体含义/" onclick="window.history.go(-1); return false;">⬅️ Go back </a></span>

	

</article>

	</main>

	<footer class="footer">
	<div class="footer-content">
		
	      <div class="footer__element">
	<p>Hi there, <br />welcome to my Blog glad you found it. Have a look around, will you?</p>
</div>

	    
	      <div class="footer__element">
	<h5>Check out</h5>
	<ul class="footer-links">
		<li class="footer-links__link"><a href="/archives">Archive</a></li>
		
		  <li class="footer-links__link"><a href="/atom.xml">RSS</a></li>
	    
		<li class="footer-links__link"><a href="/about">about page</a></li>
		<li class="footer-links__link"><a href="/tags">Tags</a></li>
		<li class="footer-links__link"><a href="/categories">Categories</a></li>
	</ul>
</div>

	    

		<div class="footer-credit">
			<span>© 2017 失落的乐章 | Powered by <a href="https://hexo.io/">Hexo</a> | Theme <a href="https://github.com/HoverBaum/meilidu-hexo">MeiliDu</a></span>
		</div>

	</div>


</footer>



</body>

</html>
